package test.test_7_24;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
给定两个字符串s和t, 它们只包含小写字母。字符串t是由s中的字母随机打乱之后，
在随机的一个位置添加一个字母生成的。请找出那个添加的字母。
比如：
s = "abcd"
t = "baedc"
输出：e
 */
public class Demo01 {
    public static void main(String[] args) {
        String s1 = "abcd";
        String s2 = "baedc";

        Map<Character, Integer> map = new HashMap<>();

        //遍历原字符
        for (int i = 0; i < s1.length(); i++) {
            //获取每个遍历字符
            Character c = s1.charAt(i);
            //判断这个字符是否存在map中
            if (map.containsKey(c)) {
                //存在，保存出现的次数+1
                map.put(c, map.get(c) + 1);
            } else {
                //不存在，保存当前出现次数1
                map.put(c,1);
            }
        }
        //遍历新字符串
        for (int i = 0; i < s2.length(); i++) {
            //获取每个遍历字符
            Character c = s2.charAt(i);
            //判断这个字符是否存在map中
            if(map.containsKey(c)) {
                //存在，保存出现次数+1
                map.put(c, map.get(c) + 1);
            }else {
                //不存在。保存当前出现的次数1
                map.put(c,1);
            }
        }
        Set<Map.Entry<Character,Integer>> entries = map.entrySet();
        //遍历所有key-value的值
        for(Map.Entry<Character,Integer> entry : entries) {
            //如果value的值大于1，就是新添加的字符
            if(entry.getValue() % 2 != 0) {
                System.out.println(entry.getKey());
            }
        }
    }
}
